package br.com.aerusc.gui.components;

import br.com.aerusc.enumerators.EnumMenu;
import br.com.aerusc.gui.panel.PanelCadastroAssociados;
import br.com.aerusc.gui.panel.PanelCadastroJogadores;
import br.com.aerusc.gui.panel.PanelConferenciaMensalidadeJogadores;
import br.com.aerusc.gui.panel.PanelListagemAssociados;
import br.com.aerusc.gui.panel.PanelListagemJogadores;
import br.com.aerusc.gui.panel.PanelMensalidadeJogadores;

import com.vaadin.ui.Panel;
import com.vaadin.ui.Tree;

public class MenuTree {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public static Tree montarMenu() {
		Tree menuTree = new Tree();
		menuTree.addItem(EnumMenu.CADASTRO);
		menuTree.setChildrenAllowed(EnumMenu.CADASTRO, true);
		menuTree.addItem(EnumMenu.CADASTRO_JOGADORES);
		menuTree.setParent(EnumMenu.CADASTRO_JOGADORES, EnumMenu.CADASTRO);
		menuTree.setChildrenAllowed(EnumMenu.CADASTRO_JOGADORES, false);
		menuTree.addItem(EnumMenu.CADASTRO_ASSOCIADOS);
		menuTree.setParent(EnumMenu.CADASTRO_ASSOCIADOS, EnumMenu.CADASTRO);
		menuTree.setChildrenAllowed(EnumMenu.CADASTRO_ASSOCIADOS, false);
		menuTree.addItem(EnumMenu.LISTAGEM);
		menuTree.setChildrenAllowed(EnumMenu.CADASTRO, true);
		menuTree.addItem(EnumMenu.LISTAGEM_JOGADORES);
		menuTree.setParent(EnumMenu.LISTAGEM_JOGADORES, EnumMenu.LISTAGEM);
		menuTree.setChildrenAllowed(EnumMenu.LISTAGEM_JOGADORES, false);
		menuTree.addItem(EnumMenu.LISTAGEM_ASSOCIADOS);
		menuTree.setParent(EnumMenu.LISTAGEM_ASSOCIADOS, EnumMenu.LISTAGEM);
		menuTree.setChildrenAllowed(EnumMenu.LISTAGEM_ASSOCIADOS, false);
		menuTree.addItem(EnumMenu.MENSALIDADE);
		menuTree.setChildrenAllowed(EnumMenu.MENSALIDADE, true);
		menuTree.addItem(EnumMenu.MENSALIDADE_JOGADORES);
		menuTree.setParent(EnumMenu.MENSALIDADE_JOGADORES, EnumMenu.MENSALIDADE);
		menuTree.setChildrenAllowed(EnumMenu.MENSALIDADE_JOGADORES, false);
		menuTree.addItem(EnumMenu.MENSALIDADE_CONFERENCIA_JOGADORES);
		menuTree.setParent(EnumMenu.MENSALIDADE_CONFERENCIA_JOGADORES, EnumMenu.MENSALIDADE);
		menuTree.setChildrenAllowed(EnumMenu.MENSALIDADE_CONFERENCIA_JOGADORES, false);
		menuTree.setSelectable(true);
		menuTree.setNullSelectionAllowed(false);
		return menuTree;
	}

	public static Panel getSelectPanel(EnumMenu itemId) {
		Panel retorno = null;
		switch (itemId) {
		case CADASTRO_JOGADORES:
			retorno = new PanelCadastroJogadores();
			break;
		case CADASTRO_ASSOCIADOS:
			retorno = new PanelCadastroAssociados();
			break;
		case LISTAGEM_JOGADORES:
			retorno = new PanelListagemJogadores();
			break;
		case LISTAGEM_ASSOCIADOS:
			retorno = new PanelListagemAssociados();
			break;
		case MENSALIDADE_JOGADORES:
			retorno = new PanelMensalidadeJogadores();
			break;
		case MENSALIDADE_CONFERENCIA_JOGADORES:
			retorno = new PanelConferenciaMensalidadeJogadores();
			break;
		default:
			break;
		}

		return retorno;
	}
}
